# my_BLE.py # neue Bluetooth-Klasse MyBLEServer: import ubluetooth from micropython import const _ADV_TYP_NAME = const(9) _IRQ_CENTRAL_CONNECT = const(1) _IRQ_CENTRAL_DISCONNECT = const(2) class MyBLEServer(): def __init__(self, name): self.name = name self.ble = ubluetooth.BLE() self.ble.active(True) self.ble.irq(self.my_ble_irq) self.advertiser() self.conn = False def my_ble_irq(self, event, data): if event == _IRQ_CENTRAL_CONNECT: print('Central connected') self.conn = True elif event == _IRQ_CENTRAL_DISCONNECT: print('Central disconnected') self.conn = False self.advertiser() def advertiser(self): adv_data = b'\x02\x01\x06' name = bytes(self.name, 'UTF-8') adv_data = adv_data + bytearray((len(name) + 1, _ADV_TYP_NAME)) + name self.ble.gap_advertise(200000, adv_data, connectable=True) # 200 ms Adv_Antervall print('advertising') # Hauptprogramm: ble = MyBLEServer('ESP32')